package com.coolt.client.components;

import java.util.List;

import com.coolt.client.Util;
import com.coolt.client.model.Comunidade;
import com.coolt.client.model.Item;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;

public class CooltMain extends VerticalPanel {

	private HorizontalPanel hp = new HorizontalPanel();
	private HorizontalPanel hpComunidades = new HorizontalPanel();

	public CooltMain() {

		setHorizontalAlignment(ALIGN_CENTER);
		setWidth("100%");

		final AsyncCallback callbackSelecao = new AsyncCallback() {
			public void onSuccess(Object result) {
				SelecaoAno listaSelecao = new SelecaoAno((List<Item>) result);
				hp.add(listaSelecao);
			}

			public void onFailure(Throwable caught) {
				hp.add(new Label("Communication failed"));
			}
		};

		final AsyncCallback callbackComunidade = new AsyncCallback() {
			public void onSuccess(Object result) {
				ComunidadesHighlights lista = new ComunidadesHighlights(
						(List<Comunidade>) result);
				hpComunidades.add(lista);
			}

			public void onFailure(Throwable caught) {
				hpComunidades.add(new Label("Communication failed"));
			}
		};

		Login loginframe = new Login();
		hp.add(loginframe);
		add(hp);
		
		Label lbSpace = new Label(" ");
		lbSpace.setSize("70", "40");
		hp.add(lbSpace);
		
		Util.getService().selecaoAno(2007, callbackSelecao);

		Label lbSpace2 = new Label(" ");
		lbSpace2.setSize("40", "40");
		add(lbSpace2);

		add(hpComunidades);
		Util.getService().listaComunidades(new Comunidade(), 5, 1,
				callbackComunidade);
	}

}
